package com.example.pool;

import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;

@EqualsAndHashCode(callSuper = true)
@Data
public class FTPClientConfig extends GenericObjectPoolConfig<FTPClient> {

    /**
     * 主机名
     */
    private String host;
    /**
     * 端口
     */
    private int port = 21;
    /**
     * 用户名
     */
    private String username;
    /**
     * 密码
     */
    private String password;
    /**
     * 超时时间（ms）
     */
    private int connectTimeOut = 500 * 1000;
    /**
     * 字符集
     */
    private String controlEncoding = "utf-8";
    /**
     * 缓冲区大小
     */
    private int bufferSize = 1024;
    /**
     * 传输数据格式 2表binary二进制数据
     */
    private int fileType = 2;
    /**
     * 数据连接超时
     */
    private int dataTimeout = 120 * 1000;
    /**
     * 使用ipv4
     */
    private boolean useEPSVwithIPv4 = false;
    /**
     * 是否启用被动模式
     */
    private boolean passiveMode = true;
    /**
     * 开启线程数
     */
    private int threadNum = 10;
    /**
     * 传输文件类型
     */
    private int transferFileType = FTPClient.BINARY_FILE_TYPE;
    /**
     * 是否上传文件重命名
     */
    private boolean renameUploaded = false;
    /**
     * 重试次数
     */
    private int retryTimes = 3;
}
